package com.example.wuqujingdianphone.utils;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;


public class TimeUtils {

    public static String getCurrentTime(String format) {
        Date date = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat(format, Locale.getDefault());
        String currentTime = sdf.format(date);
        return currentTime;
    }

    public static String getCurrentTime() {
        return getCurrentTime("yyyy-MM-dd  HH:mm:ss");
    }

    public static boolean compareDate(String startDate, String endDate) {
        DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
        try {
            Date dt1 = df.parse(startDate);
            Date dt2 = df.parse(endDate);
            //System.out.println("TimeUtils.compareDate dt1.getTime()=" + dt1.getTime() + "  dt2.getTime()=" + dt2.getTime());
            return dt1.getTime() < dt2.getTime();
        } catch (Exception exception) {
            exception.printStackTrace();
        }
        return false;
    }


    /**
     * 格式化时间
     */
    public static String getTimePickerView(Date date) {
        SimpleDateFormat format = new SimpleDateFormat("HH:mm");//yyyy-MM-dd HH-mm
        return format.format(date);
    }


    public static String getTimePickerView(long date) {
        Date date1 = new Date(date * 1000);
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH-mm");//yyyy-MM-dd HH-mm
        return format.format(date1);

       /* String s = "0";
        try {
            s = longToString(date*1000, "yyyy-MM-dd HH-mm");
        } catch (ParseException e) {
            e.printStackTrace();
        }

        return s;*/
    }

    // currentTime要转换的long类型的时间
    // formatType要转换的string类型的时间格式
    public static String longToString(long currentTime, String formatType)
            throws ParseException {
        Date date = longToDate(currentTime, formatType); // long类型转成Date类型
        String strTime = dateToString(date, formatType); // date类型转成String
        return strTime;
    }

    // currentTime要转换的long类型的时间
    // formatType要转换的时间格式yyyy-MM-dd HH:mm:ss//yyyy年MM月dd日 HH时mm分ss秒
    public static Date longToDate(long currentTime, String formatType)
            throws ParseException {
        Date dateOld = new Date(currentTime); // 根据long类型的毫秒数生命一个date类型的时间
        String sDateTime = dateToString(dateOld, formatType); // 把date类型的时间转换为string
        Date date = stringToDate(sDateTime, formatType); // 把String类型转换为Date类型
        return date;
    }

    // formatType格式为yyyy-MM-dd HH:mm:ss//yyyy年MM月dd日 HH时mm分ss秒
    // data Date类型的时间
    public static String dateToString(Date data, String formatType) {
        return new SimpleDateFormat(formatType).format(data);
    }

    // strTime要转换的string类型的时间，formatType要转换的格式yyyy-MM-dd HH:mm:ss//yyyy年MM月dd日
    // HH时mm分ss秒，
    // strTime的时间格式必须要与formatType的时间格式相同
    public static Date stringToDate(String strTime, String formatType)
            throws ParseException {
        SimpleDateFormat formatter = new SimpleDateFormat(formatType);
        Date date = null;
        date = formatter.parse(strTime);
        return date;
    }


}
